/**
 * 
 */
package kr.co.insoft.core.repository.configration.cdt;

import java.util.List;

import kr.co.insoft.core.model.configration.cdt.CDTEntityModel;
import kr.co.insoft.core.model.configration.cdt.CDTListParam;
import kr.co.insoft.core.model.paging.PagingModel;
import kr.co.insoft.framework.exceptions.RepositoryException;

/**
 * @author IN-SOFT Inc. GoodwillDD(sylee@in-soft.co.kr)
 * 
 */
public interface CDTRepository {

	/**
	 * @param param
	 * @return
	 */
	List<CDTEntityModel> getLists(PagingModel pagingModel)
			throws RepositoryException;

	/**
	 * @param pagingModel
	 * @return
	 */
	int getTotalCount(PagingModel pagingModel) throws RepositoryException;

	/**
	 * @param userTypeEntityModel
	 */
	void createCDT(CDTEntityModel cdtEntityModel) throws RepositoryException;

	/**
	 * @param userTypeEntityModel
	 * @return
	 */
	CDTEntityModel getCDT(CDTEntityModel cdtEntityModel)
			throws RepositoryException;

	/**
	 * 
	 * @param cdtEntityModel
	 * @throws RepositoryException
	 */
	void removeCDT(CDTEntityModel cdtEntityModel) throws RepositoryException;

	/**
	 * 
	 * @param cdtEntityModel
	 * @throws RepositoryException
	 */
	void editCDT(CDTEntityModel cdtEntityModel) throws RepositoryException;

	/**
	 * 
	 * @param param
	 * @return
	 * @throws RepositoryException
	 */
	List<CDTEntityModel> getCDTs(CDTListParam cdtListParam)
			throws RepositoryException;

}
